package com.leyou.trade.web;

import com.leyou.trade.entity.CartItem;
import com.leyou.trade.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author YYP
 * @date 2021/1/14
 */
@RestController
@RequestMapping("/cart")
public class CartController {
    @Autowired
    private CartService cartService;

    /**
     * 加入购物车
     * @param cartItem
     * @return
     */
    @PostMapping
    public ResponseEntity<Void> saveCartItem(@RequestBody CartItem cartItem){
        this.cartService.saveCartItem(cartItem);
        return ResponseEntity.ok().build();
    }

    /**
     * 登陆后,查看购物车时,合并购物车(批量加入)
     * @param cartItems
     * @return
     */
    @PostMapping("/list")
    public ResponseEntity<Void> saveCartItemList(@RequestBody List<CartItem> cartItems){
        this.cartService.saveCartItemList(cartItems);
        return ResponseEntity.ok().build();
    }

    /**
     * 查看购物车内容
     * @return
     */
    @GetMapping("/list")
    public ResponseEntity<List<CartItem>> listCartItems() {
        return ResponseEntity.ok(this.cartService.listCartItems());
    }


    /**
     * 根据skuid删除
     * @param skuId
     * @return
     */
    @DeleteMapping("{skuId}")
    public ResponseEntity<Void> deleteCartItem(@PathVariable("skuId") Long skuId){
        cartService.deleteCartItem(skuId);
        return ResponseEntity.ok().build();
    }

    /**
     * 更新购物车指定商品的数量
     * @param skuId 商品id
     * @param num 数量
     */
    @PutMapping
    public ResponseEntity<Void> updateCartItem(@RequestParam("id") Long skuId,@RequestParam("num") Integer num){
        this.cartService.updateCartItem(skuId,num);
        return ResponseEntity.ok().build();
    }

}
